Linking Types for Multi-Language Software: Have Your Cake and Eat It Too

نویسندگان

  • Daniel Patterson
  • Amal Ahmed
چکیده

Software developers compose systems from components written in many different languages. A business-logic component may be written in Java or OCaml, a resource-intensive component in C or Rust, and a high-assurance component in Coq. In this multi-language world, program execution sends values from one linguistic context to another. This boundary-crossing exposes values to contexts with unforeseen behavior – that is, behavior that could not arise in the source language of the value. For example, a Rust function may end up being applied in an ML context that violates the memory usage policy enforced by Rust’s type system. This leads to the question of how developers ought to reason about code in such a multi-language world where behavior inexpressible in one language is easily realized in another. This paper proposes the novel idea of linking types to address the problem of reasoning about single-language components in a multi-lingual setting. Specifically, linking types allow programmers to annotate where in a program they can link with components inexpressible in their unadulterated language. This enables developers to reason about (behavioral) equality using only their own language and the annotations, even though their code may be linked with code written in a language with more expressive power. NOTE: This paper will be much easier to follow if viewed/printed in color. 1998 ACM Subject Classification F.3.1 Specifying and Verifying and Reasoning about Programs

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Event Systems: How to Have Your Cake and Eat It Too

This paper addresses the fundamental tradeoffs in event systems between scalability (of event filtering, routing, and delivery mechanisms), expressiveness (when describing interests in events), and event safety (ensuring encapsulation and type-safe interaction with polymorphic events). We point out some ramifications underlying these tradeoffs and we propose a pragmatic approach to handle them....

متن کامل

Trends in Supercomputers

of peripherals is still much better on the central computers. As this argument continues there is a movement to let you have your cake and eat it too! Good networking to hetero­ geneous systems is at last within sight as de facto standards, such as NFS (Net­ work File System for distributed file ac­ cess), X-Windows as a windowing stan­ dard and Postscript as a standard output language for grap...

متن کامل

Have Your Cake and Eat it, Too: Data Provenance for Turing-Complete SQL Queries

We report on our work about the computation of data provenance for feature-rich SQL. Among further constructs, our prototype supports correlated subqueries, aggregations, recursive queries and window functions. Our analysis approach completely sidesteps relational algebra and instead requires a translation of the input query into an imperativestyle program. Provided that the target language is ...

متن کامل

Cloze-Elide Test as an Alternative Test Method: Linking Personality Types to Test Method Performance

More innovative test methods may measure language learners’ test performance more accurately, contributing to much fairer decisions. This study examined Iranian language learners’ performance on cloze-elide test as an innovative, integrative test method. It specifically focused on investigating whether personality types correlated with their performance and whether personality types could predi...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2017